<?php

function smarty_core_assemble_plugin_filepath($params,&$smarty)
{
static $_filepaths_cache = array();
$_plugin_filename = $params['type'] .'.'.$params['name'] .'.php';
if (isset($_filepaths_cache[$_plugin_filename])) {
return $_filepaths_cache[$_plugin_filename];
}
$_return = false;
foreach ((array)$smarty->plugins_dir as $_plugin_dir) {
$_plugin_filepath = $_plugin_dir .DIRECTORY_SEPARATOR .$_plugin_filename;
if (!preg_match("/^([\/\\\\]|[a-zA-Z]:[\/\\\\])/",$_plugin_dir)) {
$_relative_paths[] = $_plugin_dir;
if (@is_readable(SMARTY_DIR .$_plugin_filepath)) {
$_return = SMARTY_DIR .$_plugin_filepath;
break;
}
}
if (@is_readable($_plugin_filepath)) {
$_return = $_plugin_filepath;
break;
}
}
if($_return === false) {
if(isset($_relative_paths)) {
foreach ((array)$_relative_paths as $_plugin_dir) {
$_plugin_filepath = $_plugin_dir .DIRECTORY_SEPARATOR .$_plugin_filename;
$_params = array('file_path'=>$_plugin_filepath);
require_once(SMARTY_CORE_DIR .'core.get_include_path.php');
if(smarty_core_get_include_path($_params,$smarty)) {
$_return = $_params['new_file_path'];
break;
}
}
}
}
$_filepaths_cache[$_plugin_filename] = $_return;
return $_return;
}

?>